//加载名片
function loadCards(folderId) {
    if (!folderId) {
        console.error('未提供有效的folderId');
        showMessage('请选择一个名片夹', 'error');
        return;
    }
    
    
 // 如果在共享模式下且不是访问共享的名片夹，则不允许加载
    if (isInSharedMode && sharedResourceInfo.type === 'CARD') {
        showMessage('在共享名片模式下无法切换到其他名片夹', 'info');
        return;
    }
    
    showLoader();
    
    // 定义演示数据
    const demoCards = [
        {
            card_id: 1,
            name: '王智宏',
            organization: '中国—东盟信息港',
            title: '研发总监',
            gender: '男',
            phone: '13912345678',
            email: 'wang@example.com',
            address: '南宁市龙城路123号',
            folder_id: folderId
        },
        {
            card_id: 2,
            name: '蔡翾',
            organization: '广西师范大学',
            title: '教授',
            gender: '女',
            phone: '13812345678',
            email: 'cai@example.com',
            address: '桂林市七星区育才路15号',
            folder_id: folderId
        },
        {
            card_id: 3,
            name: '李明',
            organization: '蓝领科技',
            title: '产品经理',
            gender: '男',
            phone: '13712345678',
            email: 'liming@example.com',
            address: '龙城路456号',
            folder_id: folderId
        }
    ];
    
    // 更新UI以显示当前选中的文件夹
    document.querySelectorAll('.card-folder').forEach(folder => {
        folder.classList.remove('active');
        if (folder.dataset.id == folderId) {
            folder.classList.add('active');
        }
    });
    
    fetch('BusinessCardServlet?action=getCardsByFolder&folder_id=' + folderId)
        .then(response => {
            if (!response.ok) {
                throw new Error('网络响应不正常');
            }
            return response.json();
        })
        .then(data => {
            hideLoader();
            
            
            // 检查数据格式
            if (Array.isArray(data)) {
                renderCards(data);
            } else if (data && typeof data === 'object' && data.cards && Array.isArray(data.cards)) {
                // 如果数据在子对象中
                renderCards(data.cards);
            } else {
                console.error('服务器返回的数据格式不正确:', data);
                showMessage('数据格式不正确，使用演示数据', 'error');
                renderCards(demoCards);
            }
        })
        .catch(error => {
            console.error('加载名片失败:', error);
            hideLoader();
            
            // 使用演示数据
            showMessage('加载名片失败，使用演示数据', 'info');
            renderCards(demoCards);
        });
}
	
// 渲染名片
function renderCards(cards) {
    const cardList = document.getElementById('cardList');
    const tableBody = document.getElementById('cardTableBody');
    
    
    // 清空容器
    cardList.innerHTML = '';
    tableBody.innerHTML = '';
    
    // 清空选中的卡片
    selectedCardIds = [];
    document.getElementById('selectAll').checked = false;
    
    if (cards && cards.length > 0) {
        cards.forEach(card => {
            // 渲染卡片视图
            const cardEl = document.createElement('div');
            cardEl.className = 'card-item';
            cardEl.dataset.id = card.cardId;

            cardEl.innerHTML = 
                '<h3>' + (card.name || '') + '</h3>' +
                '<p><strong>机构:</strong> ' + (card.organization || '') + '</p>' +
                '<p><strong>职务:</strong> ' + (card.title || '') + '</p>' +
                '<p><strong>电话:</strong> ' + (card.phone || '') + '</p>' +
                '<p><strong>邮箱:</strong> ' + (card.email || '') + '</p>' +
                '<div class="card-actions">' +
                    '<button class="edit-card" data-id="' + card.cardId + '" title="编辑"><i class="fas fa-edit"></i></button>' +
                    '<button class="delete-card" data-id="' + card.cardId + '" title="删除"><i class="fas fa-trash"></i></button>' +
                '</div>';
            
            cardList.appendChild(cardEl);
            
            // 渲染表格视图
            const row = document.createElement('tr');
            row.dataset.id = card.cardId;
            
            
            row.innerHTML = 
                '<td><input type="checkbox" class="checkbox card-checkbox" data-id="' + card.cardId + '"></td>' +
                '<td>' + (card.name || '') + '</td>' +
                '<td>' + (card.organization || '') + '</td>' +
                '<td>' + (card.title || '') + '</td>' +
                '<td>' + (card.phone || '') + '</td>' +
                '<td>' + (card.email || '') + '</td>' +
                '<td>' +
                    '<button class="btn-link edit-card" data-id="' + card.cardId + '" title="编辑"><i class="fas fa-edit"></i></button>' +
                    '<button class="btn-link delete-card" data-id="' + card.cardId + '" title="删除"><i class="fas fa-trash"></i></button>' +
                '</td>';
            
            tableBody.appendChild(row);
            
            // 为每张卡片添加右键菜单事件
            cardEl.addEventListener('contextmenu', (e) => {
                e.preventDefault();
                showCardContextMenu(e, card.cardId);
            });
            
            row.addEventListener('contextmenu', (e) => {
                e.preventDefault();
                showCardContextMenu(e, card.cardId);
            });
        });
        
        // 添加卡片的编辑和删除事件
        document.querySelectorAll('.edit-card').forEach(btn => {
            btn.addEventListener('click', (e) => {
                e.stopPropagation();
                editCard(btn.dataset.id);
            });
        });
        
        document.querySelectorAll('.delete-card').forEach(btn => {
            btn.addEventListener('click', (e) => {
                e.stopPropagation();
                if (confirm('确定要删除此名片吗？它将被移至回收站。')) {
                    deleteCard(btn.dataset.id);
                }
            });
        });
        
        // 添加复选框变化事件
        document.querySelectorAll('.card-checkbox').forEach(checkbox => {
            checkbox.addEventListener('change', function() {
                const cardId = parseInt(this.dataset.id);
                
                if (this.checked) {
                    if (!selectedCardIds.includes(cardId)) {
                        selectedCardIds.push(cardId);
                    }
                } else {
                    selectedCardIds = selectedCardIds.filter(id => id !== cardId);
                }
                
                // 更新全选框状态
                updateSelectAllState();
            });
        });
        
        
        // 添加名片点击事件
        addCardClickEvents();
        
    } else {
        // 无数据时显示提示
        cardList.innerHTML = '<div class="text-center p-4">此名片夹中还没有名片</div>';
        tableBody.innerHTML = '<tr><td colspan="7" class="text-center">此名片夹中还没有名片</td></tr>';
    }
}

// 更新全选框状态
// 4. 更新全选状态函数
function updateSelectAllState() {
    var allCheckboxes = document.querySelectorAll('.search-result-checkbox');
    var checkedCheckboxes = document.querySelectorAll('.search-result-checkbox:checked');
    var selectAllCheckbox = document.getElementById('selectAllSearchResults');
    
    if (selectAllCheckbox && allCheckboxes.length > 0) {
        var allChecked = checkedCheckboxes.length === allCheckboxes.length;
        var someChecked = checkedCheckboxes.length > 0;
        
        selectAllCheckbox.checked = allChecked;
        selectAllCheckbox.indeterminate = someChecked && !allChecked;
        
        console.log('🔧 更新全选状态 - 全选:', allChecked, '部分选中:', selectAllCheckbox.indeterminate);
    }
}

// 显示名片右键菜单
// 显示名片右键菜单 - 支持批量操作
// ==================== 2. 修复右键菜单显示具体数量 ====================
// 修改 showCardContextMenu 函数中的菜单项文本
function showCardContextMenu(e, cardId) {
    // 检查当前点击的卡片是否已选中，如果未选中则清空之前的选择并选中当前卡片
    if (!selectedCardIds.includes(cardId)) {
        selectedCardIds = [cardId];
        // 更新复选框状态
        document.querySelectorAll('.card-checkbox').forEach(checkbox => {
            checkbox.checked = checkbox.dataset.id == cardId;
        });
        updateSelectAllState();
    }
    
    
    
 // 如果在共享单名片模式下，不显示右键菜单
    // 如果在共享单名片模式下，不显示右键菜单
    if (isInSharedMode && sharedResourceInfo && sharedResourceInfo.type === 'CARD') {
        showMessage('共享名片为只读模式，无法进行编辑操作', 'info');
        return;
    }
    
 // 检查编辑权限
    const hasEditPermission = !isInSharedMode || window.shareManagement.hasSharedEditPermission();
    
    // 清除原有菜单项
    const contextMenu = document.getElementById('contextMenu');
    contextMenu.innerHTML = '';
    
    // 根据选中数量决定菜单文本
    const selectedCount = selectedCardIds.length;
    const isMultiple = selectedCount > 1;
    
    // 修改菜单项文本，显示具体数量
 // 修改菜单项，根据权限禁用
    const menuItems = [
        { 
            id: 'ctxEdit', 
            icon: 'edit', 
            text: isMultiple ? '批量编辑' : '编辑',
            disabled: isMultiple || !hasEditPermission
        },
        { 
            id: 'ctxPrint', 
            icon: 'print', 
            text: isMultiple ? '打印选中的' + selectedCount + '张名片' : '打印'
        },
        { 
            id: 'ctxShare', 
            icon: 'share-alt', 
            text: isMultiple ? '批量共享' : '共享',
            disabled: !hasEditPermission
        },
        { 
            id: 'ctxExport', 
            icon: 'file-export', 
            text: isMultiple ? '导出选中的' + selectedCount + '张名片' : '导出'
        },
        { 
            id: 'ctxDelete', 
            icon: 'trash', 
            text: isMultiple ? '删除选中的' + selectedCount + '张名片' : '删除',
            style: 'color: #dc3545; font-weight: bold;',
            disabled: !hasEditPermission
        }
    ];
    
    menuItems.forEach(item => {
        const link = document.createElement('a');
        link.id = item.id;
        link.innerHTML = '<i class="fas fa-' + item.icon + ' me-2"></i> ' + item.text;
        
        if (item.disabled) {
            link.style.color = '#ccc';
            link.style.cursor = 'not-allowed';
            link.onclick = (e) => {
                e.preventDefault();
                showMessage('批量编辑功能暂未实现', 'info');
            };
        } else {
            if (item.style) {
                link.style.cssText = item.style;
            }
            link.addEventListener('click', () => {
                handleCardContextMenu(item.id, selectedCardIds);
            });
        }
        
        contextMenu.appendChild(link);
    });
    
    // 设置菜单位置
    contextMenu.style.top = e.pageY + 'px';
    contextMenu.style.left = e.pageX + 'px';
    contextMenu.style.display = 'block';
}


//批量删除名片（修复版 - 解决undefined问题）
function batchDeleteCards(cardIds) {
    console.log('开始批量删除，卡片IDs:', cardIds);
    
    if (!checkPermissionBeforeAction('delete_card', '删除名片')) {
        return;
    }
    
    showLoader();
    
    const formData = new FormData();
    formData.append('card_ids', JSON.stringify(cardIds));
    formData.append('owner_id', currentUserId.toString());
    
    console.log('发送的数据:', {
        card_ids: JSON.stringify(cardIds),
        owner_id: currentUserId.toString()
    });
    
    fetch('BusinessCardServlet?action=batchDeleteCards', {
        method: 'POST',
        body: formData
    })
    .then(response => {
        console.log('响应状态:', response.status);
        if (!response.ok) {
            throw new Error('网络响应不正常: ' + response.status);
        }
        return response.json();
    })
    .then(data => {
        console.log('服务器响应:', data);
        hideLoader();
        
        if (data.success) {
            // 清空选中状态
            selectedCardIds = [];
            document.querySelectorAll('.card-checkbox').forEach(checkbox => {
                checkbox.checked = false;
            });
            updateSelectAllState();
            
            // 如果当前正在查看文件夹，刷新列表
            if (currentFolder) {
                loadCards(currentFolder);
            }
            
            // 刷新名片夹列表（更新卡片计数）
            loadFolders();
            
            // 修正：使用实际删除数量或者传入的数组长度
            const actualDeletedCount = data.deletedCount || cardIds.length;
            showMessage('成功删除了 ' + actualDeletedCount + ' 张名片', 'success');
        } else {
            throw new Error(data.message || '批量删除失败');
        }
    })
    .catch(error => {
        hideLoader();
        console.error('批量删除名片失败:', error);
        showMessage('批量删除名片失败: ' + error.message, 'error');
    });
}

// 处理名片右键菜单
// 处理名片右键菜单 - 修复版
// 修改 handleCardContextMenu 函数中的导出部分
function handleCardContextMenu(action, cardIds) {
    document.getElementById('contextMenu').style.display = 'none';
    
    const isMultiple = Array.isArray(cardIds) && cardIds.length > 1;
    
    switch (action) {
    case 'ctxEdit':
        if (!isMultiple && (!isInSharedMode || window.shareManagement.hasSharedEditPermission())) {
            editCard(cardIds[0]);
        } else if (isInSharedMode && !window.shareManagement.hasSharedEditPermission()) {
            showMessage('只读权限，无法编辑名片', 'error');
        }
        break;
        case 'ctxPrint':
            // 检查打印权限
            if (!checkPermissionBeforeAction('print', '打印名片')) {
                return;
            }
            
            if (confirm('是否要先预览再打印？\n点击"确定"进行预览，点击"取消"直接打印')) {
                printCards(cardIds, true);
            } else {
                printCards(cardIds, false);
            }
            break;
        case 'ctxShare':
            showMessage(isMultiple ? '批量共享功能暂未实现' : '共享功能暂未实现', 'info');
            break;
        case 'ctxExport':
            // 🔧 修复：添加权限检查
            if (!checkPermissionBeforeAction('import_export', '导出')) {
                return;
            }
            
            document.getElementById('exportFilename').value = '名片导出_' + new Date().toISOString().slice(0, 10).replace(/-/g, '');
            document.getElementById('exportFolderId').value = '';
            document.getElementById('exportCardIds').value = JSON.stringify(cardIds);
            updateExportScopeInfo();
            showModal('exportModal');
            break;
        case 'ctxDelete':
            if (!isInSharedMode || window.shareManagement.hasSharedEditPermission()) {
                // 检查删除权限
                if (!checkPermissionBeforeAction('delete_card', '删除名片')) {
                    return;
                }
                
                const confirmMessage = isMultiple 
                    ? '确定要删除选中的 ' + cardIds.length + ' 张名片吗？它们将被移至回收站。'
                    : '确定要删除此名片吗？它将被移至回收站。';
                    
                if (confirm(confirmMessage)) {
                    if (isMultiple) {
                        batchDeleteCards(cardIds);
                    } else {
                        deleteCard(cardIds[0]);
                    }
                }
            } else {
                showMessage('只读权限，无法删除名片', 'error');
            }
            break;
    }
}

// 添加名片
function addCard(formData) {
    showLoader();
    
    fetch('BusinessCardServlet?action=addCard', {
        method: 'POST',
        body: formData
    })
    .then(response => {
        if (!response.ok) {
            throw new Error('网络响应不正常');
        }
        return response.json();
    })
    .then(data => {
        hideLoader();
        
        // 如果当前正在查看添加卡片的文件夹，刷新列表
        if (currentFolder && currentFolder == formData.get('folder_id')) {
            loadCards(currentFolder);
        }
        
        // 刷新名片夹列表（更新卡片计数）
        loadFolders();
        
        showMessage('名片添加成功', 'success');
    })
    .catch(error => {
        hideLoader();
        console.error('添加名片失败:', error);
        showMessage('添加名片失败，请重试', 'error');
    });
}

// 批量添加名片
function batchAddCards(cards, folderId) {
    showLoader();
    
    const formData = new FormData();
    formData.append('cards', JSON.stringify(cards));
    
    fetch('BusinessCardServlet?action=batchAddCards', {
        method: 'POST',
        body: formData
    })
    .then(response => {
        if (!response.ok) {
            throw new Error('网络响应不正常');
        }
        return response.json();
    })
    .then(data => {
        hideLoader();
        
        // 如果当前正在查看添加卡片的文件夹，刷新列表
        if (currentFolder && currentFolder == folderId) {
            loadCards(currentFolder);
        }
        
        // 刷新名片夹列表（更新卡片计数）
        loadFolders();
        
        showMessage('成功批量添加 ' + cards.length + ' 张名片', 'success');
    })
    .catch(error => {
        hideLoader();
        console.error('批量添加名片失败:', error);
        showMessage('批量添加名片失败，请重试', 'error');
    });
}

// 编辑名片
//编辑名片 - 修复版，支持共享模式
function editCard(cardId) {
    console.log('[DEBUG] 开始编辑名片，ID:', cardId);
    
    // 检查是否在共享模式下，如果是，需要检查编辑权限
    if (isInSharedMode) {
        console.log('[DEBUG] 共享模式下编辑名片检查');
        
        // 检查是否有编辑权限
        if (!window.shareManagement.hasSharedEditPermission()) {
            console.log('[DEBUG] 共享模式下无编辑权限');
            showMessage('只读权限，无法编辑名片', 'error');
            return;
        }
        
        console.log('[DEBUG] 共享模式下有编辑权限，继续编辑');
    }
    
    // 如果不在共享模式，检查常规权限
    if (!isInSharedMode && !checkPermissionBeforeAction('edit_card', '编辑名片')) {
        return;
    }
    
    showLoader();
    console.log('[DEBUG] 发送请求获取名片详情，ID:', cardId);
    
    fetch('BusinessCardServlet?action=getCardById&cardId=' + cardId)
        .then(response => {
            console.log('[DEBUG] 获取名片详情响应状态:', response.status);
            if (!response.ok) {
                throw new Error('网络响应不正常: ' + response.status);
            }
            return response.json();
        })
        .then(card => {
            hideLoader();
            console.log('[DEBUG] 获取到名片详情:', card);
            
            if (!card) {
                throw new Error('名片数据为空');
            }
            
            // 填充表单
            document.getElementById('cardId').value = card.cardId || cardId;
            document.getElementById('cardName').value = card.name || '';
            document.getElementById('cardOrg').value = card.organization || '';
            document.getElementById('cardTitle').value = card.title || '';
            document.getElementById('cardGender').value = card.gender || '';
            document.getElementById('cardPhone').value = card.phone || '';
            document.getElementById('cardEmail').value = card.email || '';
            document.getElementById('cardAddress').value = card.address || '';
            
            // 处理文件夹选择
            const folderSelect = document.getElementById('cardFolder');
            if (card.folder_id || card.folderId) {
                folderSelect.value = card.folder_id || card.folderId;
            } else if (currentFolder) {
                folderSelect.value = currentFolder;
            }
            
            // 在共享模式下，可能需要禁用文件夹选择
            if (isInSharedMode) {
                folderSelect.disabled = true;
                folderSelect.title = '共享模式下无法更改名片所属文件夹';
                
                // 添加共享模式提示
                const modalHeader = document.querySelector('#addCardModal .modal-header h2');
                modalHeader.innerHTML = '<i class="fas fa-share-alt"></i> 编辑共享名片';
                modalHeader.style.color = '#ff9800';
                
                // 在表单顶部添加提示
                const formContainer = document.getElementById('addCardForm');
                let sharedNotice = document.getElementById('sharedEditNotice');
                if (!sharedNotice) {
                    sharedNotice = document.createElement('div');
                    sharedNotice.id = 'sharedEditNotice';
                    sharedNotice.className = 'alert alert-warning';
                    sharedNotice.style.cssText = `
                        background: linear-gradient(135deg, #fff3cd, #fef3c7);
                        border: 1px solid #f59e0b;
                        border-radius: 6px;
                        padding: 10px 15px;
                        margin-bottom: 15px;
                        color: #92400e;
                        font-size: 13px;
                        display: flex;
                        align-items: center;
                        gap: 8px;
                    `;
                    sharedNotice.innerHTML = '<i class="fas fa-info-circle"></i> 您正在编辑共享名片，部分选项可能受限';
                    formContainer.insertBefore(sharedNotice, formContainer.firstChild);
                }
            } else {
                // 非共享模式，恢复正常状态
                folderSelect.disabled = false;
                folderSelect.title = '';
                
                const modalHeader = document.querySelector('#addCardModal .modal-header h2');
                modalHeader.textContent = '编辑名片';
                modalHeader.style.color = '';
                
                // 移除共享模式提示
                const sharedNotice = document.getElementById('sharedEditNotice');
                if (sharedNotice) {
                    sharedNotice.remove();
                }
            }
            
            console.log('[DEBUG] 表单填充完成，显示编辑模态框');
            
            // 显示模态框
            showModal('addCardModal');
        })
        .catch(error => {
            hideLoader();
            console.error('[DEBUG] 获取名片详情失败:', error);
            showMessage('获取名片详情失败: ' + error.message, 'error');
        });
}

//更新名片 - 修复版，支持共享模式
function updateCard(formData) {
    console.log('[DEBUG] 开始更新名片');
    
    // 在共享模式下，再次检查编辑权限
    if (isInSharedMode && !window.shareManagement.hasSharedEditPermission()) {
        showMessage('只读权限，无法保存更改', 'error');
        return;
    }
    
    showLoader();
    
    // 添加调试信息
    console.log('[DEBUG] 提交的表单数据:');
    for (let [key, value] of formData.entries()) {
        console.log(`  ${key}: ${value}`);
    }
    
    fetch('BusinessCardServlet?action=updateCard', {
        method: 'POST',
        body: formData
    })
    .then(response => {
        console.log('[DEBUG] 更新名片响应状态:', response.status);
        if (!response.ok) {
            throw new Error('网络响应不正常: ' + response.status);
        }
        return response.json();
    })
    .then(data => {
        hideLoader();
        console.log('[DEBUG] 更新名片响应数据:', data);
        
        if (data.success || data.cardId) { // 兼容不同的返回格式
            // 在共享模式下，只需刷新当前显示的名片
            if (isInSharedMode && sharedResourceInfo && sharedResourceInfo.type === 'CARD') {
                // 重新获取并显示更新后的名片
                const cardId = formData.get('cardId') || document.getElementById('cardId').value;
                accessSharedCard(parseInt(cardId));
            } else if (currentFolder) {
                // 非共享模式或共享文件夹模式，正常刷新列表
                loadCards(currentFolder);
            }
            
            // 如果名片移动到了其他文件夹，刷新名片夹列表
            if (!isInSharedMode) {
                loadFolders();
            }
            
            showMessage('名片更新成功', 'success');
        } else {
            throw new Error(data.message || '更新失败');
        }
    })
    .catch(error => {
        hideLoader();
        console.error('[DEBUG] 更新名片失败:', error);
        showMessage('更新名片失败: ' + error.message, 'error');
    });
}


//修复hasSharedEditPermission函数的引用
if (typeof window.shareManagement === 'undefined') {
    window.shareManagement = {};
}

if (typeof window.shareManagement.hasSharedEditPermission === 'undefined') {
    window.shareManagement.hasSharedEditPermission = function() {
        if (!isInSharedMode || !sharedResourceInfo) {
            return true; // 非共享模式，正常权限
        }
        
        // 检查编辑权限
        const permissionLevel = sharedResourceInfo.permissionLevel;
        const hasEditPermission = permissionLevel === 'edit' || permissionLevel === 'EDIT';
        
        console.log('[DEBUG] 检查共享编辑权限:', permissionLevel, '->', hasEditPermission);
        return hasEditPermission;
    };
}

//增强的权限检查函数
function checkSharedCardPermission(action) {
    if (!isInSharedMode) {
        return true; // 非共享模式，允许所有操作
    }
    
    const permissionLevel = sharedResourceInfo ? sharedResourceInfo.permissionLevel : 'read';
    const isReadOnly = permissionLevel === 'read' || permissionLevel === 'READ';
    
    console.log('[DEBUG] 检查共享卡片权限:', action, '权限级别:', permissionLevel, '只读:', isReadOnly);
    
    // 只读权限下不允许的操作
    const restrictedActions = ['edit', 'delete', 'move'];
    
    if (isReadOnly && restrictedActions.includes(action)) {
        showMessage('只读权限，无法执行此操作', 'error');
        return false;
    }
    
    return true;
}

// 删除名片
function deleteCard(cardId) {
	
    // 检查共享权限
    if (isInSharedMode && !window.shareManagement.hasSharedEditPermission()) {
        showMessage('只读权限，无法删除名片', 'error');
        return;
    }
	
    showLoader();
    
    console.log("U R deleting!!");
    
    const formData = new FormData();
    formData.append('card_id', cardId);
    formData.append('owner_id', currentUserId);  // 传递当前用户ID
    
    fetch('BusinessCardServlet?action=deleteCard', {
        method: 'POST',
        body: formData
    })
    .then(response => {
        if (!response.ok) {
            throw new Error('网络响应不正常');
        }
        return response.json();
    })
    .then(data => {
        hideLoader();
        
        // 如果当前正在查看文件夹，刷新列表
        if (currentFolder) {
            loadCards(currentFolder);
        }
        
        // 刷新名片夹列表（更新卡片计数）
        loadFolders();
        
        showMessage('名片已移到回收站', 'success');
    })
    .catch(error => {
        hideLoader();
        console.error('删除名片失败:', error);
        showMessage('删除名片失败，请重试', 'error');
    });
}

//名片详情预览功能
function showCardDetails(cardId) {
    console.log('显示名片详情，ID:', cardId);
    
    showLoader();
    
    fetch(`BusinessCardServlet?action=getCardById&cardId=${cardId}`)
        .then(response => {
            if (!response.ok) {
                throw new Error('网络响应不正常: ' + response.status);
            }
            return response.json();
        })
        .then(card => {
            hideLoader();
            console.log('获取到名片详情:', card);
            
            if (!card) {
                throw new Error('名片数据为空');
            }
            
            // 使用字符串模板填充数据
            fillCardDetails(card);
            
            // 显示详情模态框
            showModal('cardDetailsModal');
        })
        .catch(error => {
            hideLoader();
            console.error('获取名片详情失败:', error);
            showMessage('获取名片详情失败: ' + error.message, 'error');
        });
}

//填充名片详情数据
function fillCardDetails(card) {
    // 使用字符串模板和安全的数据处理
    const safeGet = (value, defaultValue = '未填写') => {
        return value && value.trim() !== '' ? value.trim() : defaultValue;
    };
    
    // 填充头部信息
    document.getElementById('detailName').textContent = safeGet(card.name, '未知姓名');
    document.getElementById('detailOrg').textContent = safeGet(card.organization, '未知机构');
    document.getElementById('detailJobTitle').textContent = safeGet(card.title, '未知职务');
    
    // 填充基本信息
    document.getElementById('detailGender').textContent = safeGet(card.gender, '未填写');
    
    // 填充联系方式
    document.getElementById('detailPhone').textContent = safeGet(card.phone, '未填写');
    document.getElementById('detailEmail').textContent = safeGet(card.email, '未填写');
    
    // 填充地址信息
    document.getElementById('detailAddress').textContent = safeGet(card.address, '未填写');
    
    console.log('名片详情填充完成');
}

//添加名片点击事件处理
function addCardClickEvents() {
    // 为卡片视图添加点击事件
    document.querySelectorAll('.card-item').forEach(cardEl => {
        // 移除之前的事件监听器
        cardEl.removeEventListener('click', handleCardClick);
        
        // 添加新的事件监听器
        cardEl.addEventListener('click', handleCardClick);
    });
    
    // 为表格视图添加点击事件
    document.querySelectorAll('#cardTableBody tr').forEach(row => {
        // 移除之前的事件监听器
        row.removeEventListener('click', handleRowClick);
        
        // 添加新的事件监听器
        row.addEventListener('click', handleRowClick);
    });
}

// 处理卡片点击事件
function handleCardClick(e) {
    // 如果点击的是按钮或其子元素，不触发预览
    if (e.target.closest('.card-actions') || e.target.closest('button')) {
        return;
    }
    
    const cardId = this.dataset.id;
    if (cardId) {
        showCardDetails(parseInt(cardId));
    }
}

// 处理表格行点击事件
function handleRowClick(e) {
    // 如果点击的是复选框、按钮或其子元素，不触发预览
    if (e.target.type === 'checkbox' || 
        e.target.closest('button') || 
        e.target.closest('.btn-link')) {
        return;
    }
    
    const cardId = this.dataset.id;
    if (cardId) {
        showCardDetails(parseInt(cardId));
    }
}





